package cn.edu.xhu.library_management.department.service;

import cn.edu.xhu.library_management.department.entity.LmClass;
import cn.edu.xhu.library_management.department.entity.search.SearchClass;
import cn.edu.xhu.library_management.department.entity.vo.ClassVo;
import io.swagger.models.auth.In;

import java.util.List;
import java.util.Map;

/**
 * @Author: MMJ
 * @Date: 2022-02-02
 * @Description: 班级service接口类
 */
public interface ClassService {
    /**
     * 查询所有班级
     * @return 班级对象集合
     */
    public List<LmClass> findAllClasses();

    /**
     * 查询专业对应的班级
     * @param maId 专业ID
     * @return 班级对象集合
     */
    public List<ClassVo> findClassesByMajor(Integer maId);

    /**
     * 通过班级ID查询班级
     * @param clId 班级ID
     * @return 班级对象
     */
    public ClassVo findClassById(Integer clId);

    /**
     * 班级搜索带分页
     * @param searchClass 搜索对象
     * @return
     */
    public Map<String,Object> search(SearchClass searchClass);

    /**
     * 添加班级
     * @param lmClass 班级对象
     * @return true 成功 false 失败
     */
    public boolean addClass(LmClass lmClass);

    /**
     * 修改班级(班级ID)
     * @param lmClass 班级对象
     * @return true 成功 false 失败
     */
    public boolean updateClass(LmClass lmClass);

    /**
     * 通过班级ID，删除班级
     * @param clId clId 班级ID
     * @return true 成功 false 失败
     */
    public boolean deleteClassById(Integer clId);

    /**
     * 通过班级IDs集合，批量删除班级
     * @param clIds 班级ID集合
     * @return true 成功 false 失败
     */
    public boolean deleteClassesByIds(List<Integer> clIds);
}
